//
//  TalkViewController.h
//  ENTBoostChat
//
//  Created by zhong zf on 14-8-8.
//  Copyright (c) 2014年 EB. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "SETextView.h"
#import "StampInputView.h"
#import "ChatCell.h"

@class EmotionViewController;
@class TalksTableViewController;

@class ChatCell;

@interface TalkViewController : UIViewController<UIScrollViewDelegate, UITableViewDataSource, UITableViewDelegate, UINavigationControllerDelegate, UIImagePickerControllerDelegate, SETextViewDelegate, ChatCellDelegate>

@property(nonatomic) NSString* talkId; //聊天记录号
@property(nonatomic) NSDate* updatedTime; //最新活跃时间(接收或发送信息)
//@property(nonatomic) uint64_t currentCallId; //当前会话编号，如等于0表示没关联到会话

@property(nonatomic) uint64_t depCode; //部门或群组编号，如等于0表示当前是一对一会话
@property(nonatomic, strong) NSString* depName; //部门或群组名称

@property(nonatomic) uint64_t otherUid; //对方的用户编号,大于0时表示一对一会话
@property(nonatomic, strong) NSString* otherAccount; //对方的用户账号，与uid相匹配
@property(nonatomic, strong) NSString* otherUserName; //对方用户名称

@property(nonatomic, strong) NSMutableArray* messages; //聊天信息数组

@property(nonatomic, weak) TalksTableViewController* talksController; //对话归类列表控制器

@property(nonatomic, strong) IBOutlet EmotionViewController *emotionViewController; //表情选择控制器
@property(nonatomic, strong) IBOutlet UITableView *talkTableView; //聊天信息显示视图
//@property(nonatomic, strong) IBOutlet UITextField *talkTextField; //发送信息编辑框

@property(nonatomic, strong) IBOutlet UIScrollView *talkScrollView; //发送信息编辑框(滚动底框)
@property(nonatomic, strong) IBOutlet SETextView* talkTextView; //发送信息编辑框
@property(nonatomic, strong) IBOutlet StampInputView* stampInputView; //备选图标表情的视图
@property(nonatomic, strong) IBOutlet UIButton *sendButton; //发送按钮

@property(nonatomic) BOOL isFirstShow; //是否第一层显示

///刷新表情选择视图
- (void)refreshStampInputView;

////点击发送按钮事件处理
//- (IBAction)sendTextFieldTaped:(id)sender;

////显示图标表情按钮事件处理
//- (IBAction)showStampInputView:(id)sender;

/**添加消息到表视图
 * @param messages 消息数组
 * @param append 是否在尾部追加, YES=是，NO=插入第一位置
 * @return 是否成功，YES=成功,NO=重复
 */
- (BOOL)addMessages:(NSArray*)messages append:(BOOL)append;

/*表视图滚动到最后一行记录
 * @param animated 是否动画模式执行
 */
-(void)scrollToBottom:(BOOL)animated;

//是否群组聊天
- (BOOL)isGroup;

/*检查是否已经存在会话，如不存在则自动发起会话
 * @param waittingResult 输出参数 是否需要等待呼叫会话结果
 * @param result 输出参数 会话是否已经准备好
 */
- (void)detectAndLaunchCallWithWaitting:(BOOL*)waittingResult result:(BOOL*)result;

@end
